MCGS近期推出新功能,“腳本驅(qū)動”與用戶面對面
2004/7/26 14:24:00
張波(化名)是福建省廈門市一家很有名的工控儀表生產(chǎn)廠家的技術人員,該廠家是昆侖通態(tài)MCGS組態(tài)軟件的老客戶,每年都使用200套以上的MCGS組態(tài)軟件,張波的主要工作是為該廠家的各種儀表編寫MCGS組態(tài)軟件的設備驅(qū)動程序。
昆侖通態(tài)在2002年推出了nTouch系列嵌入式一體化工控機和MCGS嵌入式組態(tài)軟件。廈門這一廠家在對昆侖通態(tài)這兩款產(chǎn)品進行試用和論證后,決定采用nTouch和MCGS應用到其工程項目中。于是派張波到北京出差,學習如何使用Embeded VC開發(fā)MCGS嵌入式組態(tài)軟件的設備驅(qū)動程序。
張波是昆侖通態(tài)的老朋友,大家都比較熟悉。在昆侖通態(tài)學習的空閑時間里四處走動,他發(fā)現(xiàn)昆侖通態(tài)測試部門的員工正在認真地測試一個軟件,詢問之后得知,這是昆侖通態(tài)準備在近期推出的MCGS組態(tài)軟件新功能的一部分,名叫MCGS腳本驅(qū)動開發(fā)程序,覺得非常好奇,于是找到該項目的負責人侯尚秋,與侯尚秋有了如下一段對話。
張波(以下簡稱張):什么是腳本驅(qū)動?
侯尚秋(以下簡稱侯):
腳本驅(qū)動是我們推出的一種使用MCGS腳本編寫設備驅(qū)動程序的技術。
使用腳本驅(qū)動,您不需要使用復雜的VC、DELPHI、VB等開發(fā)語言,不需要理解動態(tài)連接庫、COM接口等復雜的技術。您只需要使用我們提供的開發(fā)工具,做一些簡單的設置,編寫一些簡單的腳本,就可以完成一個設備驅(qū)動程序。
張:為什么需要腳本驅(qū)動?
侯:在組態(tài)軟件的應用中,需要與各種智能設備通訊。一般組態(tài)軟件都是通過VC、DELPHI或者VB等高級語言編寫動態(tài)庫程序,通過組態(tài)軟件提供的接口,實現(xiàn)采集設備數(shù)據(jù)并和組態(tài)軟件通訊。
這種方式目前在組態(tài)軟件中應用廣泛。但存在其不足之處。尤其是對于一些簡單的設備,或者用戶自己開發(fā)的設備。
這種設備的通訊協(xié)議本身非常簡單,但客戶不得不委托組態(tài)軟件的開發(fā)商開發(fā)設備驅(qū)動程序,而組態(tài)軟件廠商的開發(fā)人員往往沒有實際的設備,只能根據(jù)用戶提供的協(xié)議完成代碼編程。實際用戶在現(xiàn)場使用,如果出現(xiàn)問題,又需要返回廠商修改,有時不得不反復數(shù)次才能解決問題。給用戶造成了人力、物力、時間上的浪費。
如果用戶希望自己開發(fā)設備驅(qū)動程序,則必須使用組態(tài)軟件廠商提供的開發(fā)框架和接口進行開發(fā)。理解框架和接口本身就是一件費時費力的事情,同時還需要了解具體的串口、網(wǎng)絡、端口等方面的知識。
腳本驅(qū)動屏蔽了大量的技術細節(jié)。用戶需要關心的事情只有一件,就是分析設備的通訊協(xié)議,解析從設備讀取的數(shù)據(jù)。這樣,用戶可以自己完成設備驅(qū)動的編寫、調(diào)試和現(xiàn)場應用,就可以在最短的時間內(nèi),開發(fā)出滿足需要的設備驅(qū)動程序。
張:腳本驅(qū)動難不難呀?
侯:不難,簡單是腳本驅(qū)動程序最大的特點。
腳本驅(qū)動程序是專為簡化驅(qū)動開發(fā)過程設計的,只要會使用MCGS軟件,在4、5個小時的時間內(nèi),就可以全面掌握腳本驅(qū)動程序開發(fā)過程。熟練之后,甚至只需要30分鐘就可以完成一個象泓格7017模塊的驅(qū)動。
張:哪些設備可以用腳本編寫驅(qū)動?
侯:理論上,所有串口設備、MODEM設備、以太網(wǎng)通訊設備和板卡設備都可以使用腳本驅(qū)動程序開發(fā)驅(qū)動。最適合使用腳本驅(qū)動的有:單片機,傳感器,智能模塊,智能儀表,常見PCI板卡等。
我們對我們所編寫的全部設備驅(qū)動程序的代碼作了統(tǒng)計分析,分析后發(fā)現(xiàn),70%以上的設備驅(qū)動程序,其代碼量在200行以內(nèi)。這些設備的特點是協(xié)議比較簡單,通道較少,對協(xié)議的解析和命令合成過程不是很復雜。腳本驅(qū)動針對這些設備,提供了必要的數(shù)據(jù)收發(fā),協(xié)議解析,通道賦值等方面的功能。開發(fā)這些類型的驅(qū)動程序,腳本驅(qū)動使用方便、調(diào)試簡單、工作量小。
張:通訊協(xié)議復雜的設備怎么辦?
侯:對于通訊協(xié)議復雜的設備,如PLC和一些國外的儀表等,理論上也可以使用腳本驅(qū)動開發(fā),但是并不是最合適的。這類設備代碼量大,調(diào)試復雜,一般應由組態(tài)廠商的設備驅(qū)動人員為用戶完成。
腳本驅(qū)動程序推出的目標,并不是代替目前的設備驅(qū)動開發(fā)方式,而是提供給用戶一種新的選擇。
張:對于MCGS的用戶,是不是都要學習使用腳本驅(qū)動?
侯:對于MCGS的用戶,包括組態(tài)用戶和最終用戶,都不會發(fā)覺MCGS在設備處理方面有任何變化,腳本驅(qū)動編寫的設備驅(qū)動程序,與一般的設備驅(qū)動程序的使用方式是沒有任何區(qū)別的。
腳本驅(qū)動程序的使用對象,一是我公司內(nèi)部的驅(qū)動開發(fā)人員,二是我公司的技術支持人員和銷售人員,三是需要自己編寫驅(qū)動的客戶。我們在公司內(nèi)部的要求是:所有技術支持人員和銷售人員都要掌握腳本驅(qū)動編寫的方法,其目標是加快客戶服務的速度。
張:不知其速度和性能如何?
侯:這是一個每個使用腳本驅(qū)動程序的人員都會問的一個問題,特別是在嵌入式系統(tǒng)的應用中,速度更是一個非常關鍵的問題。
我們在內(nèi)部做了實驗,MCGS的腳本語言比VC代碼平均慢10倍。但對通訊程序而言,速度的瓶頸是在對串口、以太網(wǎng)等的讀寫上。我們已將對串口讀寫、以太網(wǎng)等的讀寫操作進行了精心的封裝,這一部分代碼全部是使用C語言編寫的,腳本驅(qū)動程序只需要調(diào)用該部分的函數(shù)接口,即可完成一次完整的通訊過程。經(jīng)過大量的極限測試,我們得出結論,其速度和性能完全能滿足現(xiàn)場設備的需要。
張:你剛才講到精心的封裝,能不能具體介紹一下這方面的內(nèi)容?
侯:這方面的內(nèi)容,涉及到比較多的計算機知識,我只大概地描述一下,我只針對串口通訊來進行說明。
對于串口通訊,最底層的操作是通過INP和OUP對端口3F8或2F8進行操作,目前編程人員一般不直接采用這種方式了。VC編程人員是通過ReadFile和WriteFile兩個API接口函數(shù)進行串口操作的;DELPHI一般使用SPCOMM等構件進行串口操作;VB則一般使用MSCOMM控件進行串口操作。
VB和DELPHI對串口操作即進行了封裝,將大量的串口操作細節(jié)封裝在控件或構件的內(nèi)部,用戶只需要調(diào)用該控件的屬性和方法,即可完成通訊參數(shù)的設置和通訊了。
腳本驅(qū)動中,對串口操作的封裝更加強大,我們分析了歷年來我們?yōu)榭蛻艟帉懙拇罅吭O備驅(qū)動程序,歸納出幾種典型的串口通訊模式,并將這些串口通訊模式進行封裝?,F(xiàn)在,用戶只要調(diào)用一個接口函數(shù),就可以完成數(shù)據(jù)發(fā)送、等待、接收等全過程。
張:我聽不太懂,我對VB比較熟悉,我能很快熟悉腳本驅(qū)動嗎?
侯:如果您打開MCGS提供的腳本驅(qū)動開發(fā)工具,你一定會發(fā)現(xiàn):這個工具多么象VB的編譯器呀,包括界面風格、語法等,還有與VB類似的單步跟蹤和調(diào)試手段呢。
張:腳本驅(qū)動只能運行在MCGS嵌入版本嗎?
侯:不,腳本驅(qū)動可以運行在MCGS的三個版本中,即在嵌入版本、通用版本和網(wǎng)絡版本都可以應用。
而且,腳本驅(qū)動還有一個特點,即:一次編寫,無需編譯。您在MCGS嵌入版本中編寫的腳本驅(qū)動,可以直接在通用版本或網(wǎng)絡版本上使用。
張:腳本驅(qū)動的穩(wěn)定性如何?
侯:主程序可以控制腳本驅(qū)動的所有異常訪問并加以判斷處理。使用腳本驅(qū)動,絕不會出現(xiàn)象C語言編寫的驅(qū)動程序那樣,動不動就出現(xiàn)非法指針訪問的情況,也不會出現(xiàn)VB那樣對內(nèi)存的非法操作情況。
張:能不能給我演示一下?
侯:好的。
(1小時后,張波已編寫并調(diào)試了他廠家生產(chǎn)的某一款儀表的腳本驅(qū)動。)
張:這對我們這些系統(tǒng)制造商或其它系統(tǒng)集成商來說,真是一件天大的好事,它什么時間發(fā)布?
侯:目前腳本驅(qū)動正在緊張的測試中,預計嵌入版本的腳本驅(qū)動程序在一個月之后正式發(fā)布,通用版本和網(wǎng)絡版本的腳本驅(qū)動程序在三個月之后正式發(fā)布。
張:看來我不需要學習EMBEDED VC和VB了,能不能給我拿一套試用版本,我先試試?
侯:可以呀。能為您和那些支持我們昆侖通態(tài)事業(yè)發(fā)展的朋友效勞,是我們的榮幸。
我的EMAIL:mcgslcb@263.net。如果您在試用過程中對我們的產(chǎn)品有任何意見或者建議,也請與我們聯(lián)系。
昆侖通態(tài)在2002年推出了nTouch系列嵌入式一體化工控機和MCGS嵌入式組態(tài)軟件。廈門這一廠家在對昆侖通態(tài)這兩款產(chǎn)品進行試用和論證后,決定采用nTouch和MCGS應用到其工程項目中。于是派張波到北京出差,學習如何使用Embeded VC開發(fā)MCGS嵌入式組態(tài)軟件的設備驅(qū)動程序。
張波是昆侖通態(tài)的老朋友,大家都比較熟悉。在昆侖通態(tài)學習的空閑時間里四處走動,他發(fā)現(xiàn)昆侖通態(tài)測試部門的員工正在認真地測試一個軟件,詢問之后得知,這是昆侖通態(tài)準備在近期推出的MCGS組態(tài)軟件新功能的一部分,名叫MCGS腳本驅(qū)動開發(fā)程序,覺得非常好奇,于是找到該項目的負責人侯尚秋,與侯尚秋有了如下一段對話。
張波(以下簡稱張):什么是腳本驅(qū)動?
侯尚秋(以下簡稱侯):
腳本驅(qū)動是我們推出的一種使用MCGS腳本編寫設備驅(qū)動程序的技術。
使用腳本驅(qū)動,您不需要使用復雜的VC、DELPHI、VB等開發(fā)語言,不需要理解動態(tài)連接庫、COM接口等復雜的技術。您只需要使用我們提供的開發(fā)工具,做一些簡單的設置,編寫一些簡單的腳本,就可以完成一個設備驅(qū)動程序。
張:為什么需要腳本驅(qū)動?
侯:在組態(tài)軟件的應用中,需要與各種智能設備通訊。一般組態(tài)軟件都是通過VC、DELPHI或者VB等高級語言編寫動態(tài)庫程序,通過組態(tài)軟件提供的接口,實現(xiàn)采集設備數(shù)據(jù)并和組態(tài)軟件通訊。
這種方式目前在組態(tài)軟件中應用廣泛。但存在其不足之處。尤其是對于一些簡單的設備,或者用戶自己開發(fā)的設備。
這種設備的通訊協(xié)議本身非常簡單,但客戶不得不委托組態(tài)軟件的開發(fā)商開發(fā)設備驅(qū)動程序,而組態(tài)軟件廠商的開發(fā)人員往往沒有實際的設備,只能根據(jù)用戶提供的協(xié)議完成代碼編程。實際用戶在現(xiàn)場使用,如果出現(xiàn)問題,又需要返回廠商修改,有時不得不反復數(shù)次才能解決問題。給用戶造成了人力、物力、時間上的浪費。
如果用戶希望自己開發(fā)設備驅(qū)動程序,則必須使用組態(tài)軟件廠商提供的開發(fā)框架和接口進行開發(fā)。理解框架和接口本身就是一件費時費力的事情,同時還需要了解具體的串口、網(wǎng)絡、端口等方面的知識。
腳本驅(qū)動屏蔽了大量的技術細節(jié)。用戶需要關心的事情只有一件,就是分析設備的通訊協(xié)議,解析從設備讀取的數(shù)據(jù)。這樣,用戶可以自己完成設備驅(qū)動的編寫、調(diào)試和現(xiàn)場應用,就可以在最短的時間內(nèi),開發(fā)出滿足需要的設備驅(qū)動程序。
張:腳本驅(qū)動難不難呀?
侯:不難,簡單是腳本驅(qū)動程序最大的特點。
腳本驅(qū)動程序是專為簡化驅(qū)動開發(fā)過程設計的,只要會使用MCGS軟件,在4、5個小時的時間內(nèi),就可以全面掌握腳本驅(qū)動程序開發(fā)過程。熟練之后,甚至只需要30分鐘就可以完成一個象泓格7017模塊的驅(qū)動。
張:哪些設備可以用腳本編寫驅(qū)動?
侯:理論上,所有串口設備、MODEM設備、以太網(wǎng)通訊設備和板卡設備都可以使用腳本驅(qū)動程序開發(fā)驅(qū)動。最適合使用腳本驅(qū)動的有:單片機,傳感器,智能模塊,智能儀表,常見PCI板卡等。
我們對我們所編寫的全部設備驅(qū)動程序的代碼作了統(tǒng)計分析,分析后發(fā)現(xiàn),70%以上的設備驅(qū)動程序,其代碼量在200行以內(nèi)。這些設備的特點是協(xié)議比較簡單,通道較少,對協(xié)議的解析和命令合成過程不是很復雜。腳本驅(qū)動針對這些設備,提供了必要的數(shù)據(jù)收發(fā),協(xié)議解析,通道賦值等方面的功能。開發(fā)這些類型的驅(qū)動程序,腳本驅(qū)動使用方便、調(diào)試簡單、工作量小。
張:通訊協(xié)議復雜的設備怎么辦?
侯:對于通訊協(xié)議復雜的設備,如PLC和一些國外的儀表等,理論上也可以使用腳本驅(qū)動開發(fā),但是并不是最合適的。這類設備代碼量大,調(diào)試復雜,一般應由組態(tài)廠商的設備驅(qū)動人員為用戶完成。
腳本驅(qū)動程序推出的目標,并不是代替目前的設備驅(qū)動開發(fā)方式,而是提供給用戶一種新的選擇。
張:對于MCGS的用戶,是不是都要學習使用腳本驅(qū)動?
侯:對于MCGS的用戶,包括組態(tài)用戶和最終用戶,都不會發(fā)覺MCGS在設備處理方面有任何變化,腳本驅(qū)動編寫的設備驅(qū)動程序,與一般的設備驅(qū)動程序的使用方式是沒有任何區(qū)別的。
腳本驅(qū)動程序的使用對象,一是我公司內(nèi)部的驅(qū)動開發(fā)人員,二是我公司的技術支持人員和銷售人員,三是需要自己編寫驅(qū)動的客戶。我們在公司內(nèi)部的要求是:所有技術支持人員和銷售人員都要掌握腳本驅(qū)動編寫的方法,其目標是加快客戶服務的速度。
張:不知其速度和性能如何?
侯:這是一個每個使用腳本驅(qū)動程序的人員都會問的一個問題,特別是在嵌入式系統(tǒng)的應用中,速度更是一個非常關鍵的問題。
我們在內(nèi)部做了實驗,MCGS的腳本語言比VC代碼平均慢10倍。但對通訊程序而言,速度的瓶頸是在對串口、以太網(wǎng)等的讀寫上。我們已將對串口讀寫、以太網(wǎng)等的讀寫操作進行了精心的封裝,這一部分代碼全部是使用C語言編寫的,腳本驅(qū)動程序只需要調(diào)用該部分的函數(shù)接口,即可完成一次完整的通訊過程。經(jīng)過大量的極限測試,我們得出結論,其速度和性能完全能滿足現(xiàn)場設備的需要。
張:你剛才講到精心的封裝,能不能具體介紹一下這方面的內(nèi)容?
侯:這方面的內(nèi)容,涉及到比較多的計算機知識,我只大概地描述一下,我只針對串口通訊來進行說明。
對于串口通訊,最底層的操作是通過INP和OUP對端口3F8或2F8進行操作,目前編程人員一般不直接采用這種方式了。VC編程人員是通過ReadFile和WriteFile兩個API接口函數(shù)進行串口操作的;DELPHI一般使用SPCOMM等構件進行串口操作;VB則一般使用MSCOMM控件進行串口操作。
VB和DELPHI對串口操作即進行了封裝,將大量的串口操作細節(jié)封裝在控件或構件的內(nèi)部,用戶只需要調(diào)用該控件的屬性和方法,即可完成通訊參數(shù)的設置和通訊了。
腳本驅(qū)動中,對串口操作的封裝更加強大,我們分析了歷年來我們?yōu)榭蛻艟帉懙拇罅吭O備驅(qū)動程序,歸納出幾種典型的串口通訊模式,并將這些串口通訊模式進行封裝?,F(xiàn)在,用戶只要調(diào)用一個接口函數(shù),就可以完成數(shù)據(jù)發(fā)送、等待、接收等全過程。
張:我聽不太懂,我對VB比較熟悉,我能很快熟悉腳本驅(qū)動嗎?
侯:如果您打開MCGS提供的腳本驅(qū)動開發(fā)工具,你一定會發(fā)現(xiàn):這個工具多么象VB的編譯器呀,包括界面風格、語法等,還有與VB類似的單步跟蹤和調(diào)試手段呢。
張:腳本驅(qū)動只能運行在MCGS嵌入版本嗎?
侯:不,腳本驅(qū)動可以運行在MCGS的三個版本中,即在嵌入版本、通用版本和網(wǎng)絡版本都可以應用。
而且,腳本驅(qū)動還有一個特點,即:一次編寫,無需編譯。您在MCGS嵌入版本中編寫的腳本驅(qū)動,可以直接在通用版本或網(wǎng)絡版本上使用。
張:腳本驅(qū)動的穩(wěn)定性如何?
侯:主程序可以控制腳本驅(qū)動的所有異常訪問并加以判斷處理。使用腳本驅(qū)動,絕不會出現(xiàn)象C語言編寫的驅(qū)動程序那樣,動不動就出現(xiàn)非法指針訪問的情況,也不會出現(xiàn)VB那樣對內(nèi)存的非法操作情況。
張:能不能給我演示一下?
侯:好的。
(1小時后,張波已編寫并調(diào)試了他廠家生產(chǎn)的某一款儀表的腳本驅(qū)動。)
張:這對我們這些系統(tǒng)制造商或其它系統(tǒng)集成商來說,真是一件天大的好事,它什么時間發(fā)布?
侯:目前腳本驅(qū)動正在緊張的測試中,預計嵌入版本的腳本驅(qū)動程序在一個月之后正式發(fā)布,通用版本和網(wǎng)絡版本的腳本驅(qū)動程序在三個月之后正式發(fā)布。
張:看來我不需要學習EMBEDED VC和VB了,能不能給我拿一套試用版本,我先試試?
侯:可以呀。能為您和那些支持我們昆侖通態(tài)事業(yè)發(fā)展的朋友效勞,是我們的榮幸。
我的EMAIL:mcgslcb@263.net。如果您在試用過程中對我們的產(chǎn)品有任何意見或者建議,也請與我們聯(lián)系。
提交
查看更多評論
其他資訊
昆侖通態(tài) MCGS_中級教程
昆侖通態(tài) MCGS_初級教程
昆侖通態(tài) 硬件手冊_TPC1061Hn
昆侖通態(tài) MCGS_嵌入版_西門子S7-300/400以太網(wǎng)驅(qū)動
昆侖通態(tài) MCGS_嵌入版_西門子S7-200PPI驅(qū)動